Load Libraries
In [4]:
using IntervalStatistic
using Distributions
using ValidatedNumerics
using Plots
pyplot(reuse=true)
srand(10)
Out[4]:
In [5]:
to_errors = (i) -> [i.lo i.hi] - mid(i)
function show_result(value, position)
label = value[2]
data = value[1]
println(label, ": ", data)
scatter!(
[position], (x) -> mid(data), yerror=to_errors(data),
label=label
)
end
Out[5]:
Generate samples of normal distribution
In [6]:
d = Normal()
length = 100
confidence_probability = 0.95
values = rand(d, length)
mu, sigma = params(d)
average = reduce(+, values) / length
variance = mapreduce((x) -> (x - average)^2, +, values) / length
Out[6]:
In [7]:
result_by_confidence_probability = [
IntervalStatistic.var(values, IntervalStatistic.Variance.byConfidenceProbability(
confidence_probability
)),
"confidence probability"
]
result_by_point_variance = [
IntervalStatistic.var(values, IntervalStatistic.Variance.byPointVariance(
confidence_probability, variance
)),
"point variance"
]
plot([1.0;2.0], (x) -> sigma^2, label="sigma^2")
plot!([1.0;2.0], (x) -> variance, label="variance")
show_result(result_by_confidence_probability, 1)
show_result(result_by_point_variance, 2)
Out[7]:
In [ ]:
Generate samples of normal distribution with mu=100 sigma=4
In [8]:
d = Normal(100, 4)
length = 100
confidence_probability = 0.95
values = rand(d, length)
mu, sigma = params(d)
average = reduce(+, values) / length
variance = mapreduce((x) -> (x - average)^2, +, values) / length
Out[8]:
In [9]:
result_by_confidence_probability = [
IntervalStatistic.var(values, IntervalStatistic.Variance.byConfidenceProbability(
confidence_probability
)),
"confidence probability"
]
result_by_point_variance = [
IntervalStatistic.var(values, IntervalStatistic.Variance.byPointVariance(
confidence_probability, variance
)),
"point variance"
]
plot([1.0;2.0], (x) -> sigma^2, label="sigma^2")
plot!([1.0;2.0], (x) -> variance, label="variance")
show_result(result_by_confidence_probability, 1)
show_result(result_by_point_variance, 2)
Out[9]: